Microsoft Technologies Criteria API এবং Query Over ব্যবহার গাইড ও নোট

297

Criteria API এবং Query Over হল NHibernate এ ডেটাবেস কুয়েরি করার দুটি শক্তিশালী উপায়। এগুলি আপনাকে SQL কোড লেখার প্রয়োজন ছাড়াই ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করার সুবিধা দেয় এবং কোডে টাইপ সেফটি বজায় রাখে। এই দুটি পদ্ধতি ব্যবহার করে আপনি ডেটাবেসে প্রয়োজনীয় ডেটা খুঁজে পেতে পারবেন, তবে প্রতিটির ব্যবহার ভিন্ন।


1. Criteria API

Criteria API হল NHibernate এর একটি ক্লাসিক পদ্ধতি যা আপনাকে প্যারামিটারাইজড কুয়েরি তৈরি করতে সাহায্য করে। এটি একটি প্রোগ্রামেটিক উপায়, যেখানে আপনি অবজেক্টের প্রপার্টি ও শর্তাবলীর মাধ্যমে কুয়েরি তৈরি করতে পারেন, এবং এটি SQL ইনজেকশন থেকে নিরাপদ।

Criteria API উদাহরণ

ধরা যাক, আপনার কাছে Employee নামক একটি ক্লাস রয়েছে এবং আপনি সকল Employee এর নাম এবং বয়স অনুযায়ী কুয়েরি করতে চান।

using (var session = sessionFactory.OpenSession())
{
    var criteria = session.CreateCriteria<Employee>()
                          .Add(Restrictions.Eq("Department", "HR"))
                          .Add(Restrictions.Gt("Age", 30));
                          
    var employees = criteria.List<Employee>();
}

এখানে, CreateCriteria<Employee>() এর মাধ্যমে Employee ক্লাসের জন্য একটি Criteria অবজেক্ট তৈরি করা হয়েছে। তারপর Add() মেথড দিয়ে শর্ত যোগ করা হয়েছে। Restrictions.Eq() এবং Restrictions.Gt() শর্তগুলো Department এবং Age প্রপার্টির উপর ভিত্তি করে ডেটা ফিল্টার করেছে।


2. Query Over

Query Over হল NHibernate এর একটি শক্তিশালী এবং টাইপ সেফ উপায়, যা Criteria API এর আধুনিক সংস্করণ হিসেবে বিবেচিত। এটি LINQ এর মত কাজ করে এবং কোড লেখার সময় টাইপ সেফটি নিশ্চিত করে। Query Over ব্যবহার করে আপনি সহজে কুয়েরি করতে পারেন এবং কোডকে আরও ক্লিন এবং রিডেবল রাখতে পারেন।

Query Over উদাহরণ

ধরা যাক, আপনি Employee ক্লাসের ডেটা Department এবং Age এর ভিত্তিতে ফিল্টার করতে চান।

using (var session = sessionFactory.OpenSession())
{
    var queryOver = session.QueryOver<Employee>()
                           .Where(x => x.Department == "HR")
                           .And(x => x.Age > 30);
                           
    var employees = queryOver.List<Employee>();
}

এখানে, QueryOver() ব্যবহার করে আপনি Employee ক্লাসের উপর কুয়েরি তৈরি করেছেন এবং Where() এবং And() মেথডের মাধ্যমে শর্ত যোগ করেছেন। এই পদ্ধতিটি অত্যন্ত টাইপ সেফ এবং কোড লেখা আরও সহজ এবং পরিষ্কার হয়।


3. Criteria API বনাম Query Over

Criteria API এবং Query Over উভয়ই শক্তিশালী কুয়েরি টুল, তবে কিছু মৌলিক পার্থক্য রয়েছে:

  • Criteria API সাধারণত আরও বেশি ফ্লেক্সিবল, তবে টাইপ সেফটি কম থাকে। এটি অনেক সময় SQL কোডের মত কাজ করে এবং কম্পাইল টাইমে ত্রুটি চেক করে না।
  • Query Over টাইপ সেফ, LINQ-এর মত কাজ করে এবং কোডে আরও পরিষ্কার এবং কার্যকরী উপায় ব্যবহার করতে সহায়তা করে।

যদি আপনি টাইপ সেফ কুয়েরি চান এবং কোড আরও সহজ রাখতে চান, তবে Query Over ব্যবহার করা উত্তম। তবে যদি আপনি আরও কাস্টম কুয়েরি তৈরি করতে চান এবং অনেক শর্ত একত্রে সংযুক্ত করতে চান, তবে Criteria API উপযুক্ত হতে পারে।


এই দুটি পদ্ধতির মাধ্যমে আপনি NHibernate ব্যবহার করে ডেটাবেসের কুয়েরি আরও কার্যকরভাবে পরিচালনা করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...